I. Activités Préparatoires (Mise en mémoire)
Testez vos réflexes sur la syntaxe et le rôle des procédures.
Activité 1 : Commande de fin de procédure
Quelle primitive est obligatoire pour signaler à LOGO que la définition de la procédure est terminée ?
A) ARRET
B) FIN
C) STOP
Activité 2 : Appel d'exécution
Une procédure est nommée DESSINERCERCLE. Comment l'exécutez-vous ?
A) Lancer "DESSINER CERCLE"
B) POUR DESSINERCERCLE
C) DESSINERCERCLE
Activité 3 : Pourquoi utiliser POUR...FIN ?
Quel est le principal avantage d'utiliser une procédure par rapport à écrire toutes les instructions directement dans la console ?
A) Rendre le code réutilisable sans recopie et plus clair.
B) Augmenter la vitesse d'exécution de la Tortue.
C) Changer les couleurs de l'arrière-plan.
Activité 4 : Nom de la procédure
Lequel de ces noms est **valide** pour une procédure LOGO ?
A) 1CARRÉ
B) TOURNER_DROITE
C) AV
Activité 5 : Contenu d'une procédure
Que peut contenir une procédure ?
A) Seulement des mouvements (AV, RE).
B) Des mouvements et REPETE, mais pas d'autres procédures.
C) Toutes les primitives LOGO, y compris l'appel d'autres procédures.
II. Le Concept de Procédure (POUR...FIN)
1. Définition et Structure
Une procédure est un bloc d'instructions nommé qui peut être appelé pour être exécuté. Elle permet de structurer un programme complexe en tâches simples.
Structure de base
POUR <Nom_de_la_Procédure>
<Instruction 1>
<Instruction 2>
FIN
L'exécution s'arrête lorsque la commande FIN est rencontrée.
2. Définition et Appel
Exemple : Dessiner un Carré
Ici, nous créons une procédure qui dessine un carré de 25 pas (répété 4 fois).
POUR CARRE25
REPETE 4 [ AV 25 TD 90 ]
FIN
CARRE25
AV 50
CARRE25
**Rappel important :** L'exécution de la procédure se fait en tapant son nom seul. POUR est uniquement utilisé pour la définition.
3. Imbrication des Procédures
Une procédure peut contenir l'appel d'autres procédures. C'est le principe de la modularité : construire des figures complexes à partir de blocs simples.
Exemple : Construction d'un mur
Si BRIQUE dessine un rectangle, on peut créer un MUR_SIMPLE :
POUR BRIQUE
REPETE 2 [ AV 30 TD 90 AV 10 TD 90 ]
FIN
POUR MUR_SIMPLE
REPETE 5 [ BRIQUE AV 30 ]
LC RE 150 BC
FIN
III. Exercices d'Application (Résolution de Problèmes)
Déterminez la conséquence ou le code correct en utilisant le concept de procédure.
Exercice 1 : Déplacement total
Si la procédure FAIRE-UN-PAS contient AV 50 TD 90. Quelle est l'action totale du code FAIRE-UN-PAS FAIRE-UN-PAS ?
A) La Tortue a avancé de 100 pas et a tourné de 180°.
B) La Tortue a avancé de 50 pas et a tourné de 180°.
C) La Tortue a avancé de 100 pas et a tourné de 90°.
Exercice 2 : Rosace de Carrés
La procédure CARRE dessine un carré. Quel code utilise CARRE pour dessiner une rosace de 8 carrés ?
A) REPETE 4 [ CARRE TD 90 ]
B) REPETE 8 [ CARRE TD 45 ]
C) CARRE REPETE 8 [ TD 45 ]
Exercice 3 : L'effet des couleurs
La procédure A contient FCC 2. La procédure B contient FCC 4 suivi de l'appel à A. Quelle sera la couleur finale après l'appel à B ?
A) Couleur 2 (Vert), car c'est la dernière instruction exécutée.
B) Couleur 4 (Rouge), car c'est la procédure principale.
C) Couleur par défaut (Blanc ou Noir).
Exercice 4 : Erreur de Définition
Lequel de ces blocs de code provoquera une **erreur de syntaxe** lors de la définition de la procédure ?
A) POUR MonDessin AV 10 FIN
B) POUR ETOILE6 REPETE 6 [ AV 50 TD 60 ] FIN
C) POUR AVANCE100 AV 100
A) Bloc A
B) Bloc B
C) Bloc C
Exercice 5 : Portée de la position
Si la Tortue est à (0,0) et que vous appelez MARCHER qui contient AV 20. Quelle sera sa position après MARCHER MARCHER ?
A) (0, 40) si elle est orientée à 0°.
B) (0, 20) car la procédure réinitialise la position.
C) (20, 20) si elle est orientée à 45°.